package cn.jolyoulu.common.web.limiting;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.UUID;

/**
 * @Author: JolyouLu
 * @Date: 2025/11/18 14:25
 * @Version 1.0
 * 基于漏桶算法实现的接口限流
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CurrentLimiting {

    /**
     * 桶名称，唯一标识
     */
    String id();

    /**
     * 桶容量：业务瞬时峰值（如秒杀场景的瞬时请求突增，需容纳 1-2 秒的峰值请求）
     */
    int capacity() default 200;
    /**
     * 漏出速率：系统长期处理能力（如系统每秒最多处理 100 个请求，则漏出速率设为 100 个 / 秒，避免系统过载）
     */
    int rate() default 200;
}
